Simple integration of an on-demand compute environment

ABSTRACT

Disclosed are a system and method of integrating an on-demand compute environment into a local compute environment. The method includes receiving a request from an administrator to integrate an on-demand compute environment into a local compute environment and, in response to the request, automatically integrating local compute environment information with on-demand compute environment information to make available resources from the on-demand compute environment to requestors of resources in the local compute environment.

PRIORITY CLAIM

The present application is a continuation-in-part of U.S. patentapplication Ser. No. 14/331,772, filed Jul. 15, 2014, which is acontinuation of U.S. patent application Ser. No. 11/276,854, filed Mar.16, 2006, now U.S. Pat. No. 8,782,231, issued on Jul. 15, 2014, whichclaims priority to U.S. Provisional Application No. 60/662,240 filedMar. 16, 2005, the contents of which are incorporated herein byreference.

RELATED APPLICATION

The present application is related to U.S. application Ser. No11/276,852 (Attorney Docket No. 010-0025) incorporated herein byreference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure as it appears in the United States Patent &Trademark Office patent file or records, but otherwise reserves allcopyright rights whatsoever.

BACKGROUND

1. Field of the Disclosure

The present disclosure relates to a resource management system and morespecifically to a system and method of providing access to on-demandcompute resources.

2. Introduction

Managers of clusters desire maximum return on investment often meaninghigh system utilization and the ability to deliver various qualities ofservice to various users and groups. A cluster is typically defined as aparallel computer that is constructed of commodity components and runsas its system software commodity software. A cluster contains nodes eachcontaining one or more processors, memory that is shared by all of theprocessors in the respective node and additional peripheral devices suchas storage disks that are connected by a network that allows data tomove between nodes. A cluster is one example of a compute environment.Other examples include a grid, which is loosely defined as a group ofclusters, and a computer farm which is another organization of computerfor processing.

Often a set of resources organized in a cluster or a grid may have jobsto be submitted to the resources that require more capability than theset of resource has available. In this regard, there is a need in theart for being able to easily, efficiently and on-demand be able toutilize new resources or different resources to handle a job. Theconcept of “on-demand” compute resources has been developing in the highperformance computing community recently. An on-demand computingenvironment enables companies to procure compute power for averagedemand and then contract remote processing power to help in peak loadsor to offload all their compute needs to a remote facility. Severalreference books having background material related to on-demandcomputing or utility computing include Mike Ault, Madhu Tumma, Oracle 10g Grid & Real Application Clusters, Rampant TechPress, 2004 and GuyBunker, Darren Thomson, Delivering Utility Computing Business-driven ITOptimization, John Wiley & Sons Ltd, 2006.

In Bunker and Thompson, section 3.3 on page 32 is entitled“Connectivity: The Great Enabler” wherein they discuss how theinterconnecting of computers will dramatically increase theirusefulness. This disclosure addresses that issue. There exists in theart a need for improved solutions to enable communication andconnectivity with an on-demand high performance computing center.

SUMMARY

Additional features and advantages of the disclosure will be set forthin the description which follows, and in part will be obvious from thedescription, or may be learned by practice of the invention. Thefeatures and advantages of the disclosure may be realized and obtainedby means of the instruments and combinations particularly pointed out inthe appended claims. These and other features of the present disclosurewill become more fully apparent from the following description andappended claims, or may be learned by the practice of the disclosure asset forth herein.

Various embodiments of the disclosure include, but are not limited to,methods, systems, computing devices, clusters, grids andcomputer-readable media that perform the processes and steps describedherein.

The method embodiment provides for a method of integrating an on-demandcompute environment into a local compute environment. The methodincludes receiving a request from an administrator to integrate anon-demand compute environment into a local compute environment and, inresponse to the request, automatically integrating local computeenvironment information with on-demand compute environment informationto make available resources from the on-demand compute environment torequestors of resources in the local compute environment.

A benefit of the approaches disclosed herein is a reduction inunnecessary costs of building infrastructure to accommodate peak demand.Thus, customers only pay for the extra processing power they need onlyduring those times when they need it.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the disclosure can be obtained, a moreparticular description of the disclosure briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended documents and drawings. Understanding thatthese drawings depict only typical embodiments of the disclosure and arenot therefore to be considered to be limiting of its scope, thedisclosure will be described and explained with additional specificityand detail through the use of the accompanying drawings.

FIG. 1 illustrates the basic arrangement of the present disclosure;

FIG. 2 illustrates basic hardware components;

FIG. 3 illustrates a method aspect of the disclosure;

FIG. 4 illustrates a method aspect of the disclosure;

FIG. 5 illustrates another method aspect of the disclosure; and

FIG. 6 illustrates another method aspect of the disclosure.

DETAILED DESCRIPTION

Various embodiments are discussed in detail below. While specificimplementations are discussed, it should be understood that this is donefor illustration purposes only. A person skilled in the relevant artwill recognize that other components and configurations may be usedwithout parting from the spirit and scope of the disclosure.

This disclosure relates to the access and management of on-demand orutility computing resources at a hosting center. FIG. 1 illustrates thebasic arrangement and interaction between a local compute environment104 and an on-demand hosting center 102. The local compute environmentmay include a cluster, a grid, or any other variation on these types ofmultiple node and commonly managed environments. The on-demand hostingcenter or on-demand computing environment 102 includes a group of nodesthat are available for provisioning and preferably has a dedicated nodecontaining a hosting master 128 which may include a slave managementmodule 106 and/or at least one other module such as the entity manager128 and node provisioner 118.

Products such as Moab provide an essential service for optimization of alocal compute environment. It provides an analysis into how & when localresources, such as software and hardware devices, are being used for thepurposes of charge-back, planning, auditing, troubleshooting andreporting internally or externally. Such optimization enables the localenvironment to be tuned to get the most out of the resources in thelocal compute environment. However, there are times where more resourcesare needed.

Typically a hosting center 102 will have the following attributes. Itallows an organization to provide resources or services to customerswhere the resources or services are custom-tailored to the needs of thecustomer. Supporting true utility computing usually requires creating ahosting center 102 with one or more capabilities as follows: secureremote access, guaranteed resource availability at a fixed time orseries of times, integrated auditing/accounting/billing services, tieredservice level (QoS/SLA) based resource access, dynamic compute nodeprovisioning, full environment management over compute, network,storage, and application/service based resources, intelligent workloadoptimization, high availability, failure recovery, and automatedre-allocation.

A management module 108 such as, by way of example, Moab™ (which mayalso refer to any Moab product such as the Moab Workload Manager®, MoabGrid Monitor®, etc. from Cluster Resources, Inc.) enables utilitycomputing by allowing compute resources to be reserved, allocated, anddynamically provisioned to meet the needs of internal or externalworkload. Thus, at peak workload times, the local compute environmentdoes not need to be built out with peak usage in mind. As periodic peakresources are required, triggers can cause overflow to the on-demandenvironment and thus save money for the customer. The module 108 is ableto respond to either manual or automatically generated requests and canguarantee resource availability subject to existing service levelagreement (SLA) or quality of service (QOS) based arrangements. As anexample, FIG. 1 shows a user submitting a job or a query 110 to thecluster or local environment 104. The local environment will typicallybe a cluster or a grid with local workload. Jobs may be submitted whichhave explicit resource requirements. The local environment 104 will havevarious attributes such as operating systems, architecture, networktypes, applications, software, bandwidth capabilities, etc, which areexpected by the job implicitly. In other words, jobs will typicallyexpect that the local environment will have certain attributes that willenable it to consume resources in an expected way.

Other software is shown by way of example in a distributed resourcemanager such as Torque 128 and various nodes 130, 132 and 134. Themanagement modules (both master and/or slave) may interact and operatewith any resource manager, such as Torque, LSF, SGE, PBS and LoadLevelerand are agnostic in this regard. Those of skill in the art willrecognize these different distributed resource manager softwarepackages.

A hosting master or hosting management module 106 may also be aninstance of a Moab software product with hosting center capabilities toenable an organization to dynamically control network, compute,application, and storage resources and to dynamically provisionoperating systems, security, credentials, and other aspects of acomplete end-to-end compute environments. Module 106 is responsible forknowing all the policies, guarantees, promises and also for managing theprovisioning of resources within the utility computing space 102. In onesense, module 106 may be referred to as the “master” module in that itcouples and needs to know all of the information associated with boththe utility environment and the local environment. However, in anothersense it may be referred to as the slave module or provisioning brokerwherein it takes instructions from the customer management module 108for provisioning resources and builds whatever environment is requestedin the on-demand center 102. A slave module would have none of its ownlocal policies but rather follows all requests from another managementmodule. For example, when module 106 is the slave module, then a mastermodule 108 would submit automated or manual (via an administrator)requests that the slave module 106 simply follows to manage the buildout of the requested environment. Thus, for both IT and end users, asingle easily usable interface can increase efficiency, reduce costsincluding management costs and improve investments in the local customerenvironment. The interface to the local environment which also has theaccess to the on-demand environment may be a web-interface or accessportal as well. Restrictions of feasibility only may exist. The customermodule 108 would have rights and ownership of all resources. Theallocated resources would not be shared but be dedicated to therequestor. As the slave module 106 follows all directions from themaster module 108, any policy restrictions will preferably occur on themaster module 108 in the local environment.

The modules also provide data management services that simplify addingresources from across a local environment. For example, if the localenvironment includes a wide area network, the management module 108provides a security model that ensures, when the environment dictates,that administrators can rely on the system even when untrusted resourcesat the certain level have been added to the local environment or theon-demand environment. In addition, the management modules comply withn-tier web services based architectures and therefore scalability andreporting are inherent parts of the system. A system operating accordingto the principles set forth herein also has the ability to track, recordand archive information about jobs or other processes that have been runon the system.

A hosting center 102 provides scheduled dedicated resources to customersfor various purposes and typically has a number of key attributes:secure remote access, guaranteed resource availability at a fixed timeor series of times, tightly integrated auditing/accounting services,varying quality of service levels providing privileged access to a setof users, node image management allowing the hosting center to restorean exact customer-specific image before enabling access. Resourcesavailable to a module 106, which may also be referred to as a providerresource broker, will have both rigid (architecture, RAM, local diskspace, etc.) and flexible (OS, queues, installed applications etc.)attributes. The provider or on-demand resource broker 106 can typicallyprovision (dynamically modify) flexible attributes but not rigidattributes. The provider broker 106 may possess multiple resources eachwith different types with rigid attributes (i.e., single processor anddual processor nodes, Intel nodes, AMD nodes, nodes with 512 MB RAM,nodes with 1 GB RAM, etc).

This combination of attributes presents unique constraints on amanagement system. We describe herein how the management modules 108 and106 are able to effectively manage, modify and provision resources inthis environment and provide full array of services on top of theseresources.

Utility-based computing technology allows a hosting center 102 toquickly harness existing compute resources, dynamically co-allocate theresources, and automatically provision them into a seamless virtualcluster. The management modules' advanced reservation and policymanagement tools provide support for the establishment of extensiveservice level agreements, automated billing, and instant chart andreport creation.

Also shown in FIG. 1 are several other components such as an identitymanager 112 and a node provisioner 118 as part of the hosting center102. The hosting master' 128 may include an identity manager interface112 that may coordinate global and local information regarding users,groups, accounts, and classes associated with compute resources. Theidentity manager interface 112 may also allow the management module 106to automatically and dynamically create and modify user accounts andcredential attributes according to current workload needs. The hostingmaster 128 allows sites extensive flexibility when it comes to definingcredential access, attributes, and relationships. In most cases, use ofthe USERCFG, GROUPCFG, ACCOUNTCFG, CLASSCFG, and QOSCFG parameters isadequate to specify the needed configuration. However, in certain cases,such as the following, this approach may not be ideal or even adequate:environments with very large user sets; environments with very dynamiccredential configurations in terms of fairshare targets, priorities,service access constraints, and credential relationships; gridenvironments with external credential mapping information services;enterprise environments with fairness policies based on multi-clusterusage.

The modules address these and similar issues through the use of theidentity manager 112. The identity manager 112 allows the module toexchange information with an external identity management service. Aswith the module's resource manager interfaces, this service can be afull commercial package designed for this purpose, or something farsimpler by which the module obtains the needed information for a webservice, text file, or database.

Next attention is turned to the node provisioner 118 and as an exampleof its operation, the node provisioner 118 can enable the allocation ofresources in the hosting center 102 for workload from a local computeenvironment 104. The customer management module 108 will communicatewith the hosting management module 106 to begin the provisioningprocess. In one aspect, the provisioning module 118 may generate anotherinstance of necessary management software 120 and 122 which will becreated in the hosting center environment as well as compute nodes 124and 126 to be consumed by a submitted job. The new management module 120is created on the fly, may be associated with a specific request andwill preferably be operative on a dedicated node. If the new managementmodule 120 is associated with a specific request or job, as the jobconsumes the resources associated with the provisioned compute nodes124, 126, and the job becomes complete, then the system would remove themanagement module 120 since it was only created for the specificrequest. The new management module 120 may connect to other modules suchas module 108. The module 120 does not necessarily have to be createdbut may be generated on the fly as necessary to assist in communicationand provisioning and use of the resources in the utility environment102. For example, the module 106 may go ahead and allocate nodes withinthe utility computing environment 102 and connect these nodes directlyto module 108 but in that case you may lose some batch ability as atradeoff The hosting master 128 having the management module 106,identity manager 112 and node provisioner 118 preferably is co-locatedwith the utility computing environment but may be distributed. Themanagement module on the local environment 108 may then communicatedirectly with the created management module 120 in the hosting center tomanage the transfer of workload and consumption of on-demand centerresources.

FIG. 6 provides an illustration of a method aspect of utilizing the newmanagement module. As shown, this method includes receiving aninstruction at a slave management module associated with an on-demandcomputing environment from a master management module associated with alocal computing environment (602) and based on the instruction, creatinga new management module on a node in the on-demand computing environmentand provisioning at least one compute node in the on-demand computingenvironment, wherein the new management module manages the at least onecompute node and communicates with the master management module (604).

There are two supported primary usage models, a manual and an automaticmodel. In manual mode, utilizing the hosted resources can be as easy asgoing to a web site, specifying what is needed, selecting one of theavailable options, and logging in when the virtual cluster is activated.In automatic mode, it is even simpler. To utilize hosted resources, theuser simply submits jobs to the local cluster. When the local clustercan no longer provide an adequate level of service, it automaticallycontacts the utility hosting center, allocates additional nodes, andruns the jobs. The end user is never aware that the hosting center evenexists. He merely notices that the cluster is now bigger and that hisjobs are being run more quickly.

When a request for additional resources is made from the localenvironment, either automatically or manually, a client module or clientresource broker (which may be, for example, an instance of a managementmodule 108 or 120) will contact the provider resource broker 106 torequest resources. It will send information regarding rigid attributesof needed resources as well as quantity or resources needed, requestduration, and request timeframe (i.e., start time, feasible times ofday, etc.) It will also send flexible attributes which must beprovisioned on the nodes 124, 126. Both flexible and rigid resourceattributes can come from explicit workload-specified requirement or fromimplicit requirements associated with the local or default computeresources. The provider resource broker 106 must indicate if it ispossible to locate requested resources within the specified timeframefor sufficient duration and of the sufficient quantity. This taskincludes matching rigid resource attributes and identifying one or moreprovisioning steps required to put in place all flexible attributes.

When provider resources are identified and selected, the client resourcebroker 108 or 120 is responsible for seamlessly integrating theseresources in with other local resources. This includes reportingresource quantity, state, configuration and load. This further includesautomatically enabling a trusted connection to the allocated resourceswhich can perform last mile customization, data staging, and jobstaging. Commands are provided to create this connection to the providerresource broker 106, query available resources, allocate new resources,expand existing allocations, reduce existing allocations, and releaseall allocated resources.

In most cases, the end goal of a hosting center 102 is to make availableto a customer, a complete, secure, packaged environment which allowsthem to accomplish one or more specific tasks. This packaged environmentmay be called a virtual cluster and may consist of the compute, network,data, software, and other resources required by the customer. Forsuccessful operation, these resources must be brought together andprovisioned or configured so as to provide a seamless environment whichallows the customers to quickly and easily accomplish their desiredtasks.

Another aspect of the disclosure is the cluster interface. The desiredoperational model for many environments is providing the customer with afully automated self-service web interface. Once a customer hasregistered with the host company, access to a hosting center portal isenabled. Through this interface, customers describe their workloadrequirements, time constraints, and other key pieces of information. Theinterface communicates with the backend services to determine when,where, and how the needed virtual cluster can be created and reportsback a number of options to the user. The user selects the desiredoption and can monitor the status of that virtual cluster via web andemail updates. When the virtual cluster is ready, web and emailnotification is provided including access information. The customer logsin and begins working.

The hosting center 102 will have related policies and service levelagreements. Enabling access in a first come-first served model providesreal benefits but in many cases, customers require reliable resourceaccess with guaranteed responsiveness. These requirements may be anyperformance, resource or time based rule such as in the followingexamples: I need my virtual cluster within 24 hours of asking; I want avirtual cluster available from 2 to 4 PM every Monday, Wednesday, andFriday; I want to always have a virtual cluster available andautomatically grow/shrink it based on current load, etc.

Quality of service or service level agreement policies allow customersto convert the virtual cluster resources to a strategic part of theirbusiness operations greatly increasing the value of these resources.Behind the scenes, a hosting center 102 consists of resource managers,reservations, triggers, and policies. Once configured, administration ofsuch a system involves addressing reported resource failures (i.e., diskfailures, network outages, etc) and monitoring delivered performance todetermine if customer satisfaction requires tuning policies or addingresources.

The modules associated with the local environment 104 and the hostingcenter environment 102 may be referred to as a master module 108 and aslave module 106. This terminology relates to the functionality whereinthe hosting center 102 receives requests for workload and provisioningof resources from the module 108 and essentially follows those requests.In this regard, the module 108 may be referred to as a client resourcebroker 108 which will contact a provider resource broker 106 (such as anOn-Demand version of Moab).

The management module 108 may also be, by way of example, a MoabWorkload Manager® operating in a master mode. The management module 108communicates with the compute environment to identify resources, reserveresources for consumption by jobs, provision resources and in generalmanage the utilization of all compute resources within a computeenvironment. As can be appreciated by one of skill in the art, thesemodules may be programmed in any programming language, such as C or C++and which language is immaterial to the disclosure.

In a typical operation, a user or a group submits a job to a localcompute environment 104 via an interface to the management module 108.An example of a job is a submission of a computer program that willperform a weather analysis for a television station that requires theconsumption of a large amount of compute resources. The module 108and/or an optional scheduler 128 such as TORQUE, as those of skill inthe art understand, manages the reservation of resources and theconsumption of resources within the environment 104 in an efficientmanner that complies with policies and restrictions. The use of aresource manager like TORQUE 128 is optional and not specificallyrequired as part of the disclosure.

A user or a group of users will typically enter into a service levelagreement (SLA) which will define the policies and guarantees forresources on the local environment 104. For example, the SLA may providethat the user is guaranteed 10 processors and 50 GB of hard drive spacewithin 5 hours of a submission of a job request. Associated with anyuser may be many parameters related to permissions, guarantees, prioritylevel, time frames, expansion factors, and so forth. The expansionfactor is a measure of how long the job is taking to run on a localenvironment while sharing the environment with other jobs versus howlong it would take if the cluster was dedicated to the job only. Ittherefore relates to the impact of other jobs on the performance of theparticular job. Once a job is submitted and will sit in a job queuewaiting to be inserted into the cluster 104 to consume those resources.The management software will continuously analyze the environment 104and make reservations of resources to seek to optimize the consumptionof resources within the environment 104. The optimization process musttake into account all the SLA's of users, other policies of theenvironment 104 and other factors.

As introduced above, this disclosure provides improvements in theconnectivity between a local environment 104 and an on-demand center102. The challenges that exist in accomplishing such a connectioninclude managing all of the capabilities of the various environments,their various policies, current workload, workload queued up in the jobqueues and so forth.

As a general statement, disclosed herein is a method and system forcustomizing an on-demand compute environment based on both implicit andexplicit job or request requirements. For example, explicit requirementsmay be requirements specified with a job such as a specific number ofnodes or processor and a specific amount of memory. Many otherattributes or requirements may be explicitly set forth with a jobsubmission such as requirements set forth in an SLA for that user.Implicit requirements may relate to attributes of the computeenvironment that the job is expecting because of where it is submitted.For example, the local compute environment 104 may have particularattributes, such as, for example, a certain bandwidth for transmission,memory, software licenses, processors and processor speeds, hard drivememory space, and so forth. Any parameter that may be an attribute ofthe local environment in which the job is submitted may relate to animplicit requirement. As a local environment 104 communicates with anon-demand environment 102 for the transfer of workload, the implicit andexplicit requirements are seamlessly imported into the on-demandenvironment 102 such that the user's job can efficiently consumeresources in the on-demand environment 102 because of the customizationof that environment for the job. This seamless communication occursbetween a master module 108 and a slave module 106 in the respectiveenvironments. As shown in FIG. 1, a new management module 120 may alsobe created for a specific process or job and also communicate with amaster module 108 to manage the provisioning, consumption and clean upof compute nodes 124, 126 in the on-demand environment 102.

Part of the seamless communication process includes the analysis andprovisioning of resources taking into account the need to identifyresources such as hard drive space and bandwidth capabilities toactually perform the transfer of the workload. For example, if it isdetermined that a job in the queue has a SLA that guarantees resourceswithin 5 hours of the request, and based on the analysis by themanagement module of the local environment the resources cannot beavailable for 8 hours, and if such a scenario is at triggering event,then the automatic and seamless connectivity with the on-demand center102 will include an analysis of how long it will take to provision anenvironment in the on-demand center that matches or is appropriate forthe job to run. That process, of provisioning the environment in theon-demand center 102, and transferring workload from the localenvironment 104 to the on-demand center 102, may take, for example, 1hour. In that case, the on-demand center will begin the provisioningprocess one hour before the 5 hour required time such that theprovisioning of the environment and transfer of data can occur to meetthe SLA for that user. This provisioning process may involve reservingresources within the on-demand center 102 from the master module 108 aswill be discussed more below.

FIG. 3 illustrates an embodiment in this regard, wherein a methodincludes detecting an event in a local compute environment (302). Theevent may be a resource need event such as a current resource need or apredicted resource need. Based on the detected event, a moduleautomatically establishes communication with an on-demand computeenvironment (304). This may also involve dynamically negotiating andestablishing a grid/peer relationship based on the resource need event.A module provisions resources within the on-demand compute environment(306) and workload is transferred from the local-environmenttransparently to the on-demand compute environment (308). Preferably,local information is imported to the on-demand environment and on-demandinformation is communicated to the local compute environment, althoughonly local environment information may be needed to be transmitted tothe on-demand environment. Typically, at least local environmentinformation is communicated and also job information may be communicatedto the on-demand environment. Examples of local environment informationmay be at least one of class information, configuration policyinformation and other information. Information from the on-demand centermay relate to at least one of resources, availability of resources, timeframes associated with resources and any other kind of data that informsthe local environment of the opportunity and availability of theon-demand resources. The communication and management of the databetween the master module or client module in the local environment andthe slave module is preferably transparent and unknown to the user whosubmitted the workload to the local environment. However, one aspect mayprovide for notice to the user of the tapping into the on-demandresources and the progress and availability of those resources.

A further discussion of the type of information associated with thelocal compute environment governance that can be incorporated into theremote compute environment follows. Such information can includeuser-defined policies or governance, or compute resource providerpolicies or governance regarding use of compute resources, evenadministratively. For example, users of compute resources may not beallowed to engage in inappropriate activities such as attackingwebsites. Examples of a class can include security or security level(which can include components of security level requirement and/orsecurity level capability), encryption type, class of a user that canaccess resources or what types of resources, costs or charges, geographyinformation such as availability or requirements, availability zone andhow such zones apply to qualities of service requirements and creditsgiven for compliance issues. An example policy or governance can beunder what circumstances when a quality of service drops below athreshold that credits are provided to subscribers.

A class can relate to one or more of a service level agreement supportmetric, a domain metric, a service availability parameter, a class ofservice and other concepts that can be covered in a particular “class.”A class of service (or class) can include many aspects which impact thenot just the quality of the service provided but also the nature of theservice delivered. Such a class of service can be defined andencapsulated within a single object or may be pulled from multiplesources and attributes and combined to constitute the overall class ofservice experience delivered.

Terms of a service level agreement can be characterized as a class, suchas a service name, description, provider, location, cost, and parametersassociated with what capabilities a compute resource provider can offer.For example, a subscriber may require certain parameters such as datadeletion, location, cost, availability, encryption capability, securitylevel, support metrics, and so forth. Any of these parameters can beorganized as classes. For example, a class of parameters can relate tosupport metrics, such as business continuity plan, resolution time,response time, outage notification procedures, escalation time, and soforth. A subscriber can establish the support metrics they expect suchthat when they need to burst into a remote compute environment, thosesupport metrics will be followed. Constraints such as resource limits,quality of data, security level constraint, response time may also berequired. One or more of these can be set forth in a service levelagreement or set forth or implemented outside of a formal service levelagreement. The main point is that combinations of these requirements,rules or parameters will follow the workload as a subscriber to computeresources in a local compute environment needs to expand into a remotecompute environment to utilize compute resources in a remoteenvironment. By maintaining these kinds of requirements for workloadconsuming remote compute environment resources, the user can experienceconsistency in how their workload is processed. Thus, one or more ofgovernance, policies, control, rules for managing the workload, securitylevels, costs, qualities of service, policies, availability, and soforth will be maintained for both the local compute environment and theremote compute environment. With the requirements being the same in aremote compute environment as is expected in the local computeenvironment, when the subscriber expands into the remote computeenvironment and utilizes compute resources, it is as though they aresimple accessing more resources that appeared in their local computeenvironment.

Another example of a policy relates to data management. For example, inlegal situations where a company has to comply with a discover requestfor litigation, there must be a set of policies in place for managingthe storage of data. Regulations or governance might be standard in anindustry. Policies for data management can include how to definebusiness information, managing data volume, organizing data produced byworkload that generates documents, emails, other communication,spreadsheets, and so forth. The policies may implement disposal ofinformation that is not needed. Knowing what data is needed, where tostore the data and providing a mechanism to access needed data withoutmuch effort and efficiently are features of such data managementpolicies. Such policies will manage data and content generated byworkload across local and remote environments. Thus, data management,electronic discovery and searching can be consistent across the localand remote environments. This consistency can be called compliance withdata management policies. Thus, this kind of policy that is maintainedfor workload that is transferred from a local environment to the remoteenvironment involves maintaining compliance with such data managementpolicies so that when workload consumes resources in the remoteenvironment, the compliance and data management rules are the same.

Policies could be related to licensing or licensing management. Forexample, the licensing of various software packages or services, costs,restrictions, how to license (expanding into a remote environment caninclude different license from different entities for differentpackages) and so forth. In this case, the licensing requirements thatare set up in a local environment can be maintained in expansion intothe remote environment. Pricing and/or cost can also be maintained.

Example triggering events may be related to at least one of a resourcethreshold, a service threshold, workload and a policy threshold or otherfactors. Furthermore, the event may be based one of all workloadassociated with the local compute environment or a subset of workloadassociated with the compute environment or any other subset of a givenparameter or may be external to the compute environment such as anatural disaster or power outage or predicted event.

The disclosure below provides for various aspects of this connectivityprocess between a local environment 104 and an on-demand center 102. TheCD submitted with the priority Provisional Patent Application includessource code that carries out this functionality. The various aspectswill include an automatic triggering approach to transfer workload fromthe local environment 104 to the on-demand center 102, a manual“one-click” method of integrating the on-demand compute environment 102with the local environment 104 and a concept related to reservingresources in the on-demand compute environment 102 from the localcompute environment 104.

The first aspect relates to enabling the automatic detection of atriggering event such as passing a resource threshold or servicethreshold within the compute environment 104. This process may bedynamic and involve identifying resources in a hosting center,allocating resources and releasing them after consumption. Theseprocesses may be automated based on a number of factors, such as:workload and credential performance thresholds; a job's current timewaiting in the queue for execution, (queuetime) (i.e., allocate if a jobhas waited more than 20 minutes to receive resources); a job's currentexpansion factor which relates to a comparison of the affect of otherjobs consuming local resources has on the particular job in comparisonto a value if the job was the only job consuming resources in the localenvironment; a job's current execution load (i.e., allocate if load onjob's allocated resources exceeds 0.9); quantity of backlog workload(i.e., allocate if more than 50,000 proc-hours of workload exist); ajob's average response time in handling transactions (i.e., allocate ifjob reports it is taking more than 0.5 seconds to process transaction);a number of failures workload has experienced (i.e., allocate if a jobcannot start after 10 attempts); overall system utilization (i.e.,allocate if more than 80% of machine is utilized) and so forth. This isan example list and those of skill in the art will recognize otherfactors that may be identified as triggering events.

Other triggering events or thresholds may include a predicted workloadperformance threshold. This would relate to the same listing of eventsabove but be applied in the context of predictions made by a managementmodule or customer resource broker.

Another listing of example events that may trigger communication withthe hosting center include, but are not limited to events such asresource failures including compute nodes, network, storage, license(i.e., including expired licenses); service failures including DNS,information services, web services, database services, securityservices; external event detected (i.e., power outage or nationalemergency reported) and so forth. These triggering events or thresholdsmay be applied to allocate initial resources, expand allocatedresources, reduce allocated resources and release all allocatedresources. Thus, while the primary discussion herein relates to aninitial allocation of resources, these triggering events may cause anynumber of resource-related actions. Events and thresholds may also beassociated with any subset of jobs or nodes (i.e., allocate only ifthreshold backlog is exceeded on high priority jobs only or jobs from acertain user or project or allocate resources only if certain servicenodes fail or certain licenses become unavailable.)

For example, if a threshold of 95% of processor consumption is met by951 processors out of the 1000 processors in the environment are beingutilized, then the system (which may or may not include the managementmodule 108) automatically establishes a connection with the on-demandenvironment 102. Another type of threshold may also trigger theautomatic connection such as a service level received threshold, aservice level predicted threshold, a policy-based threshold, a thresholdor event associated with environment changes such as a resource failure(compute node, network storage device, or service failures).

In a service level threshold, one example is where a SLA specifies acertain service level requirement for a customer, such as resourcesavailable within 5 hours. If an actual threshold is not met, i.e., a jobhas waited now for 5 hours without being able to consume resource, orwhere a threshold is predicted to not be met, these can be triggeringevents for communication with the on-demand center. The module 108 thencommunicates with the slave manager 106 to provision or customize theon-demand resources 102. The two environments exchange the necessaryinformation to create reservations of resources, provision, handlelicensing, and so forth, necessary to enable the automatic transfer ofjobs or other workload from the local environment 104 to the on-demandenvironment 102. For a particular task or job, all or part of theworkload may be transferred to the on-demand center. Nothing about auser job 110 submitted to a management module 108 changes. The on-demandenvironment 102 then instantly begins running the job without any changein the job or perhaps even any knowledge of the submitter.

There are several aspects of the disclosure that are shown in the sourcecode on the CD. One is the ability to exchange information. For example,for the automatic transfer of workload to the on-demand center, thesystem will import remote classes, configuration policy information andother information from the local scheduler 108 to the slave scheduler106 for use by the on-demand environment 102. Information regarding theon-demand compute environment, resources, policies and so forth are alsocommunicated from the slave module 106 to the local module 108.

The triggering event for the automatic establishment of communicationwith the on-demand center and a transfer of workload to the on-demandcenter may be a threshold that has been passed or an event thatoccurred. Threshold values may include an achieved service level,predicted service level and so forth. For example, a job sitting in aqueue for a certain amount of time may trigger a process to contact theon-demand center and transfer that job to the on-demand center to run.If a queue has a certain number of jobs that have not been submitted tothe compute environment for processing, if a job has an expansion factorthat has a certain value, if a job has failed to start on a localcluster one or more times for whatever reason, then these types ofevents may trigger communication with the on-demand center. These havebeen examples of threshold values that when passed will triggercommunication with the on-demand environment.

Example events that also may trigger the communication with theon-demand environment include, but are not limited to, events such asthe failure of nodes within the environment, storage failure, servicefailure, license expiration, management software failure, resourcemanager fails, etc. In other words, any event that may be related to anyresource or the management of any resource in the compute environmentmay be a qualifying event that may trigger workload transfer to anon-demand center. In the license expiration context, if the license in alocal environment of a certain software package is going to expire suchthat a job cannot properly consume resources and utilize the softwarepackage, the master module 108 can communicate with the slave module 106to determine if the on-demand center has the requisite license for thatsoftware. If so, then the provisioning of the resources in the on-demandcenter can be negotiated and the workload transferred wherein it canconsume resources under an appropriate legal and licensed framework.

The basis for the threshold or the event that triggers thecommunication, provisioning and transfer of workload to the on-demandcenter may be all jobs/workload associated with the local computeenvironment or a subset of jobs/workload associated with the localcompute environment. In other words, the analysis of when an eventand/or threshold should trigger the transfer of workload may be based ona subset of jobs. For example, the analysis may be based on all jobssubmitted from a particular person or group or may be based on a certaintype of job, such as the subset of jobs that will require more than 5hours of processing time to run. Any parameter may be defined for thesubset of jobs used to base the triggering event.

The interaction and communication between the local compute environmentand the on-demand compute environment enables an improved process fordynamically growing and shirking provisioned resource space based onload. This load balancing between the on-demand center and the localenvironment may be based on thresholds, events, all workload associatedwith the local environment or a subset of the local environmentworkload.

Another aspect of the disclosure is the ability to automate datamanagement between two sites. This involves the transparent handling ofdata management between the on-demand environment 102 and the localenvironment 104 that is transparent to the user. Typically environmentalinformation will always be communicated between the local environment104 and the on-demand environment 102. In some cases, job informationmay not need to be communicated because a job may be gathering its owninformation, say from the Internet, or for other reasons. Therefore, inpreparing to provision resources in the on-demand environment allinformation or a subset of information is communicated to enable theprocess. Yet another aspect of the disclosure relates to a simple andeasy mechanism to enable on-demand center integration. This aspect ofthe disclosure involves the ability of the user or an administrator to,in a single action like the click of a button or a one-click action, beable to command the integration of an on-demand center information andcapability into the local resource manager 108.

This feature is illustrated in FIG. 4. A module, preferably associatedwith the local compute environment, receives a request from anadministrator to integrate an on-demand compute environment into thelocal compute environment (402). The creation of a reservation or of aprovisioning of resources in the on-demand environment may be from arequest from an administrator or local or remote automated broker. Inthis regard, the various modules will automatically integrate localcompute environment information with on-demand compute environmentinformation to make available resources from the on-demand computeenvironment to requestors of resources in the local compute environment(404). Integration of the on-demand compute environment may provide forintegrating: resource configuration, state information, resourceutilization reporting, job submission information, job managementinformation resource management, policy controls including priority,resource ownership, queue configuration, job accounting and tracking andresource accounting and tracking. Thus, the detailed analysis andtracking of jobs and resources may be communicated back from theon-demand center to the local compute environment interface.Furthermore, this integration process may also include a step ofautomatically creating at least one of a data migration interface and ajob migration interface.

Another aspect provides for a method of integrating an on-demand computeenvironment into a local compute environment. The method includesreceiving a request from an administrator or via an automated commandfrom an event trigger or administrator action to integrate an on-demandcompute environment into a local compute environment. In response to therequest, local workload information and/or resource configurationinformation is routed to an on-demand center and an environment iscreated and customized in the on-demand center that is compatible withworkload requirements submitted to the local compute environment.Billing and costing are also automatically integrated and handled.

Integrating local compute environment information can mean accessing atemplate or a mapping that describes characteristics of the localcompute environment such that when compute resources in the remotecompute environment are provisioned, they are provisioned according tothe local compute environment information to be consistent with or matchthe local compute environment. The local compute environment informationcan accessed from one of a database or a user account that providesconfiguration information to provision compute resources in the remotecompute environment similar to a configuration of the local computeenvironment. This provides consistency across the two environments. Forexample, the remote environment can be characterized as an IBM® or anHP® or Citrix® environment via a template or mapping. The templates canbe chosen based on the characteristics of the local environment suchthat the same general type of environment is provisioned.

The exchange and integration of all the necessary information andresource knowledge may be performed in a single action or click tobroaden the set of resources that may be available to users who haveaccess initially only to the local compute environment 104. The systemmay receive the request to integrate an on-demand compute environmentinto a local compute environment in other manners as well, such as anytype of multi-modal request, voice request, graffiti on atouch-sensitive screen request, motion detection, and so forth. Thus theone-click action may be a single tap on a touch sensitive display or asingle voice command such as “integrate” or another command ormulti-modal input that is simple and singular in nature. In response tothe request, the system automatically integrates the local computeenvironment information with the on-demand compute environmentinformation to enable resources from the on-demand compute environmentavailable to requestors of resources in the local compute environment.

The one-click approach relates to the automated approach expect a humanis in the middle of the process. For example, if a threshold or atriggering event is passed, an email or a notice may be sent to anadministrator with options to allocate resources from the on-demandcenter. The administrator may be presented with one or more optionsrelated to different types of allocations that are available in theon-demand center—and via one-click or one action the administrator mayselect the appropriate action. For example, three options may include500 processors in 1 hour; 700 processors in 2 hours; and 1000 processorsin 10 hours. The options may be intelligent in that they may take intoaccount the particular triggering event, costs of utilizing theon-demand environment, SLAs, policies, and any other parameters topresent options that comply with policies and available resources. Theadministrator may be given a recommended selection based on SLAs, cost,or any other parameters discussed herein but may then choose theparticular allocation package for the on-demand center. Theadministrator also may have an option, without an alert, to viewpossible allocation packages in the on-demand center if theadministrator knows of an upcoming event that is not capable of beingdetected by the modules, such as a meeting with a group wherein theydecide to submit a large job the next day which will clearly requireon-demand resources. The one-click approach encapsulates the commandline instruction to proceed with the allocation of on-demand resources.

One of the aspects of the disclosure is the integration of an on-demandenvironment 102 and a local compute environment 104 is that the overalldata appears locally. In other words, the local scheduler 108 will haveaccess to the resources and knowledge of the on-demand environment 102but those resources, with the appropriate adherence to local policyrequirements, is handled locally and appears locally to users andadministrators of the local environment 104.

Another aspect of the disclosure that is enabled with the attachedsource code is the ability to specify configuration information andfeeding it down the line. For example, the interaction between thecompute environments supports static reservations. A static reservationis a reservation that a user or an administrator cannot change, removeor destroy. It is a reservation that is associated with the resourcemanager 108 itself. A static reservation blocks out time frames whenresources are not available for other uses. For example, if to enable acompute environment to have workload run on (or consume) resources, ajob takes an hour to provision a resources, then the module 108 may makea static reservation of resources for the provisioning process. Themodule 108 will locally create a static reservation for the provisioningcomponent of running the job. The module 108 will report on theseconstraints associated with the created static reservation within theon-demand compute environment.

Then, the module 108 will communicate with the slave module 106 ifon-demand resources are needed to run a job. The module 108 communicateswith the slave module 106 and identifies what resources are needed (20processors and 512 MB of memory, for example) and inquires when canthose resources be available. Assume that module 106 responds that theprocessors and memory will be available in one hour and that the module108 can have those resources for 36 hours. Once all the appropriateinformation has been communicated between the modules 106 and 108, thenmodule 108 creates a static reservation to block the first part of theresources which requires the one hour of provisioning. The module 108may also block out the resources with a static reservation from hour 36to infinity until the resources go away. Therefore, from zero to onehour is blocked out by a static reservation and from the end of the 36hours to infinity is blocked out. In this way, the scheduler 108 canoptimize the on-demand resources and insure that they are available forlocal workloads. The communication between the modules 106 and 108 isperformed preferably via tunneling.

Another aspect relates to receiving requests or information associatedwith resources in an on-demand center. An example will illustrate.Assume that a company has a reservation of resources within an on-demandcenter but then finds out that their budget is cut for the year. Thereis a mechanism for an administrator to enter information such as arequest for a cancellation of a reservation so that they do not have topay for the consumption of those resources. Any type of modification ofthe on-demand resources may be contemplated here. This process involvestranslating a current or future state of the environment for arequirement of the modification of usable resources. Another exampleincludes where a group determines that they will run a large job overthe weekend that will knowingly need more than the local environment. Anadministrator can submit in the local resource broker 108 a submissionof information associated with a parameter—such as a request forresources and the local broker 108 will communicate with the hostingcenter 106 and the necessary resources can be reserved in the on-demandcenter even before the job is submitted to the local environment.

The modification of resources within the on-demand center may be anincrease, decrease, or cancellation of resources or reservations forresources. The parameters may be a direct request for resources or amodification of resources or may be a change in an SLA which then maytrigger other modifications. For example, if an SLA prevented a userfrom obtaining more than 500 nodes in an on-demand center and a currentreservation has maximized this request, a change in the SLA agreementthat extended this parameter may automatically cause the module 106 toincrease the reservation of nodes according to the modified SLA.Changing policies in this manner may or may not affect the resources inthe on-demand center.

FIG. 5 illustrates a method embodiment related to modifying resources inthe on-demand compute environment. The method includes receivinginformation at a local resource broker that is associated with resourceswithin an on-demand compute environment (502). Based on the information,the method includes communicating instructions from the local resourcebroker to the on-demand compute environment (504) and modifyingresources associated with the on-demand compute environment based on theinstructions (506). As mentioned above, examples of the type ofinformation that may be received include information associated with arequest for a new reservation, a cancellation of an existingreservation, or a modification of a reservation such as expanding orcontracting the reserved resources in the on-demand compute environment.Other examples include a revised policy or revision to an SLA thatalters (increases or perhaps decreases) allowed resources that may bereserved in the on-demand center. The master module 108 will thenprovide instructions to the slave module 106 to create or modifyreservations in the on-demand computing environment or to make someother alteration to the resources as instructed.

Receiving resource requirement information may be based on userspecification, current or predicted workload. The specification ofresources may be fully explicit, or may be partially or fully implicitbased on workload or based on virtual private cluster (VPC) packageconcept where VPC package can include aspects of allocated orprovisioning support environment and adjustments to resource requesttimeframes including pre-allocation, allocation duration, andpost-allocation timeframe adjustments. Virtual private clusters areincorporated herein by the application referenced above and areapplicable and utilized in an aspect of the disclosure. The reservedresources may be associated with provisioning or customizing thedelivered compute environment. A reservation may involve theco-allocation of resources including any combination of compute,network, storage, license, or service resources (i.e., parallel databaseservices, security services, provisioning services) as part of areservation across multiple different resource types. Also, theco-allocation of resources over disjoint timeframes to improveavailability and utilization of resources may be part of a reservationor a modification of resources. Resources may also be reserved withautomated failure handling and resource recovery.

Another feature associated with reservations of resources within theon-demand environment is the use of provisioning padding. This is analternate approach to the static reservation discussed above. Forexample, if a reservation of resources would require 2 hours ofprocessing time for 5 nodes, then that reservation may be created in theon-demand center as directed by the client resource broker 108. As partof that same reservation or as part of a separate process, thereservation may be modified or adjusted to increase its duration toaccommodate for provisioning overhead and clean up processes. Therefore,there may need to be ½ hour of time in advance of the beginning of thetwo hour block wherein data transmission, operating system set up, orany other provisioning step needs to occur. Similarly, at the end of thetwo hours, there may need to be 15 minutes to clean up the nodes andtransmit processed data to storage or back to the local computeenvironment. Thus, an adjustment of the reservation may occur to accountfor this provisioning in the on-demand environment. This may or may notoccur automatically, for example, the user may request resources for 2hours and the system may automatically analyze the job submitted orutilize other information to automatically adjust the reservation forthe provisioning needs. The administrator may also understand theprovisioning needs and specifically request a reservation withprovisioning pads on one or both ends of the reservation.

A job may also be broken into component parts and only one aspect of thejob transferred to an on-demand center for processing. In that case, themodules will work together to enable co-allocation of resources acrosslocal resources and on-demand resources. For example, memory andprocessors may be allocated in the local environment while disk space isallocated in the on-demand center. In this regard, the local managementmodule could request the particular resources needed for theco-allocation from the on-demand center and when the job is submittedfor processing that portion of the job would consume on-demand centerresources while the remaining portion of the job consumes localresources. This also may be a manual or automated process to handle theco-allocation of resources.

Another aspect relates to interaction between the master managementmodule 106 and the slave management module 106. Assume a scenario wherethe local compute environment requests immediate resources from theon-demand center. Via the communication between the local and theon-demand environments, the on-demand environment notifies the localenvironment that resources are not available for eight hours butprovides the information about those resources in the eight hours. Atthe local environment, the management module 108 may instruct theon-demand management module 106 to establish a reservation for thoseresources as soon as possible (in eight hours) including, perhaps,provisioning padding for overhead. Thus, although the local environmentrequested immediate resources from the on-demand center, the best thatcould be done in this case is a reservation of resources in eight hoursgiven the provisioning needs and other workload and jobs running on theon-demand center. Thus, jobs running or in the queue at the localenvironment will have an opportunity to tap into the reservation andgiven a variety of parameters, say job number 12 has priority or anopportunity to get a first choice of those reserved resources.

With reference to FIG. 2, an exemplary system for implementing thedisclosure includes a general purpose computing device 200, including aprocessing unit (CPU) 220, a system memory 230, and a system bus 210that couples various system components including the system memory 230to the processing unit 220. The system bus 210 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. The system may also include other memory such as readonly memory (ROM) 240 and random access memory (RAM) 250. A basicinput/output (BIOS), containing the basic routine that helps to transferinformation between elements within the computing device 200, such asduring start-up, is typically stored in ROM 240. The computing device200 further includes storage means such as a hard disk drive 260, amagnetic disk drive, an optical disk drive, tape drive or the like. Thestorage device 260 is connected to the system bus 210 by a driveinterface. The drives and the associated computer-readable media providenonvolatile storage of computer readable instructions, data structures,program modules and other data for the computing device 200. In thisregard, the various functions associated with the disclosure that areprimarily set forth as the method embodiment of the disclosure may bepracticed by using any programming language and programming modules toperform the associated operation within the system or the computeenvironment. Here the compute environment may be a cluster, grid, or anyother type of coordinated commodity resources and may also refer to twoseparate compute environments that are coordinating workload, workflowand so forth such as a local compute environment and an on-demandcompute environment. Any such programming module will preferably beassociated with a resource management or workload manager or othercompute environment management software such as Moab but may also beseparately programmed The basic components are known to those of skillin the art and appropriate variations are contemplated depending on thetype of device, such as whether the device is a small, handheldcomputing device, a desktop computer, or a computer server.

Although the exemplary environment described herein employs the harddisk, it should be appreciated by those skilled in the art that othertypes of computer readable media which can store data that is accessibleby a computer, such as magnetic cassettes, flash memory cards, digitalvideo disks, memory cartridges, random access memories (RAMs) read onlymemory (ROM), and the like, may also be used in the exemplary operatingenvironment. The system above provides an example server or computingdevice that may be utilized and networked with a cluster, clusters or agrid to manage the resources according to the principles set forthherein. It is also recognized that other hardware configurations may bedeveloped in the future upon which the method may be operable.

Embodiments within the scope of the present disclosure may also includea non-transitory computer-readable media or a computer-readable storagedevice for carrying or having computer-executable instructions or datastructures stored thereon. Such computer-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer. By way of example, and not limitation, suchcomputer-readable media can include RAM, ROM, EEPROM, CD-ROM or otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to carry or store desiredprogram code means in the form of computer-executable instructions ordata structures. When information is transferred or provided over anetwork or another communications connection (either hardwired,wireless, or combination thereof) to a computer, the computer properlyviews the connection as a computer-readable medium. Thus, any suchconnection is properly termed a computer-readable medium. Combinationsof the above should also be included within the scope of thecomputer-readable media.

Computer-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Computer-executable instructions also includeprogram modules that are executed by computers in stand-alone or networkenvironments. Generally, program modules include routines, programs,objects, components, and data structures, etc. that perform particulartasks or implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represents examples ofcorresponding acts for implementing the functions described in suchsteps.

Those of skill in the art will appreciate that other embodiments of thedisclosure may be practiced in network computing environments with manytypes of computer system configurations, including personal computers,hand-held devices, multi-processor systems, microprocessor-based orprogrammable consumer electronics, network PCs, minicomputers, mainframecomputers, and the like. Embodiments may also be practiced indistributed computing environments where tasks are performed by localand remote processing devices that are linked (either by hardwiredlinks, wireless links, or by a combination thereof) through acommunications network. As can also be appreciated, the computeenvironment itself, being managed according to the principles of thedisclosure, may be an embodiment of the disclosure. Thus, separateembodiments may include an on-demand compute environment, a localcompute environment, both of these environments together as a moregeneral compute environment, and so forth. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices. Accordingly, the scope of the claims should begoverned by the claims and their equivalents below rather than by anyparticular example in the specification.

I claim:
 1. A method comprising: receiving a request to integrate aremote compute environment into a local compute environment, wherein aspecification of compute resources associated with the request is one offully explicit, partially explicit, fully implicit based on workload,and based on a virtual private cluster package concept where a virtualprivate cluster package can include aspects of provisioning a supportenvironment and adjustments to resource request timeframes includingpre-allocation, allocation duration, and post-allocation timeframeadjustments, wherein the remote compute environment comprises aplurality of networked compute nodes under common management and thelocal compute environment comprises a plurality of networked computenodes under common management that is separate from the commonmanagement of the remote compute environment, wherein the remote computeenvironment and the local compute environment are configured to receiveand process workload, and wherein the compute resources comprise atleast one of a server, memory, network bandwidth, a processor, and avirtual compute resource; integrating local compute environmentinformation with remote compute environment information to makeavailable resources from the remote compute environment to requestors ofresources in the local compute environment under the local computeenvironment requirements; and receiving a transfer of user-submittedworkload at the remote compute environment from the local computeenvironment to yield transferred workload, such that compliance withdata management policies, security, qualities of service and costassociated with the local compute environment information are maintainedfor the transferred workload, wherein the user-submitted workload wassubmitted by a requestor to the local compute environment forprocessing.
 2. The method of claim 1, wherein all data associated withthe local compute environment and the remote compute environment ishandled and appears locally.
 3. The method of claim 1, whereinavailability of the remote compute environment is transparent torequestors.
 4. The method of claim 1, wherein the request is a one-clickrequest for access to the remote compute environment.
 5. The method ofclaim 1, further comprising: presenting an administrator with aplurality of options related to available modifications to resourceswithin the remote compute environment.
 6. The method of claim 5, whereinthe request from the administrator is associated with a selection of oneof the plurality of options.
 7. The method of claim 1, furthercomprising: prior to receiving the request, sending an event notice toan administrator; and presenting, based on the event, the administratorat least one option related to resources with the remote computeenvironment, wherein the request that is received is based on aselection from the at least one option.
 8. The method of claim 1,wherein integrating the local compute environment information comprisesintegrating at least one of: resource configuration, state information,resource utilization reporting, workload submission information,workload management, information resource management, policy controlsincluding priority, resource ownership, queue configuration, workloadaccounting and tracking, and resource accounting and tracking.
 9. Themethod of claim 1, wherein integrating the local compute environmentinformation further comprises automatically creating at least one of adata migration interface and a workload migration interface.
 10. Themethod of claim 1, wherein the local compute environment information isaccessed from one of a database or a user account and providesconfiguration information to provision compute resources in the remotecompute environment similar to a configuration of the local computeenvironment.
 11. The method of claim 1, wherein the request is receivedfrom an administrator via a web interface.
 12. A non-transitory computerreadable storage medium storing instructions which, when executed by aprocessor, cause the processor to perform operations comprising:receiving a request to integrate a remote compute environment into alocal compute environment, wherein a specification of compute resourcesassociated with the request is one of fully explicit, partiallyexplicit, fully implicit based on workload, and based on a virtualprivate cluster package concept where a virtual private cluster packagecan include aspects of provisioning a support environment andadjustments to resource request timeframes including pre-allocation,allocation duration, and post-allocation timeframe adjustments, whereinthe remote compute environment comprises a plurality of networkedcompute nodes under common management and the local compute environmentcomprises a plurality of networked compute nodes under common managementthat is separate from the common management of the remote computeenvironment, wherein the remote compute environment and the localcompute environment are configured to receive and process workload, andwherein the compute resources comprise at least one of a server, memory,network bandwidth, a processor, and a virtual compute resource;integrating local compute environment information with remote computeenvironment information to make available resources from the remotecompute environment to requestors of resources in the local computeenvironment under the local compute environment requirements; andreceiving a transfer of user-submitted workload at the remote computeenvironment from the local compute environment to yield transferredworkload, such that compliance with data management policies, security,qualities of service and cost associated with the local computeenvironment information are maintained for the transferred workload,wherein the user-submitted workload was submitted by a requestor to thelocal compute environment for processing.
 13. The non-transitorycomputer readable storage medium of claim 12, wherein all dataassociated with the local compute environment and the remote computeenvironment is handled and appears locally.
 14. The non-transitorycomputer readable storage medium of claim 12, wherein the availabilityof the remote compute environment is transparent to requestors.
 15. Thenon-transitory compute readable storage medium of claim 12, wherein thelocal compute environment information is accessed from one of a databaseor a user account and provides configuration information to provisioncompute resources in the remote compute environment similar to aconfiguration of the local compute environment.
 16. The non-transitorycomputer readable storage medium of claim 12, wherein integrating thelocal compute environment information further comprises integrating atleast one of: resource configuration, state information, resourceutilization reporting, workload submission information, workloadmanagement information, resource management, policy or governancecontrols, resource ownership, queue configuration, workload accountingand tracking, and resource accounting and tracking.
 17. A systemcomprising: a processor; and a non-transitory computer readable storagemedium storing instructions which, when executed by the processor, causethe processor to perform operations comprising: receiving a request tointegrate a remote compute environment into a local compute environment,wherein a specification of compute resources associated with the requestis one of fully explicit, partially explicit, fully implicit based onworkload, and based on a virtual private cluster package concept where avirtual private cluster package can include aspects of provisioning asupport environment and adjustments to resource request timeframesincluding pre-allocation, allocation duration, and post-allocationtimeframe adjustments, wherein the remote compute environment comprisesa plurality of networked compute nodes under common management and thelocal compute environment comprises a plurality of networked computenodes under common management that is separate from the commonmanagement of the remote compute environment, wherein the remote computeenvironment and the local compute environment are configured to receiveand process workload, and wherein the compute resources comprise atleast one of a server, memory, network bandwidth, a processor, and avirtual compute resource; integrating local compute environmentinformation with remote compute environment information to makeavailable resources from the remote compute environment to requestors ofresources in the local compute environment under the local computeenvironment requirements; and receiving a transfer of user-submittedworkload at the remote compute environment from the local computeenvironment to yield transferred workload, such that compliance withdata management policies, security, qualities of service and costassociated with the local compute environment information are maintainedfor the transferred workload, wherein the user-submitted workload wassubmitted by a requestor to the local compute environment forprocessing.